#ifndef PJAPICALLINFO_H
#define PJAPICALLINFO_H

#include "pjapiinvitestate.h"

#include <string>

class PjApiCallInfo
{
public:

    enum Role {
        Unknown,
        Caller,
        Callee
    };

    PjApiCallInfo(){}

    ~PjApiCallInfo(){}

    int getCallID()const
    {
        return m_callID;
    }

    void setCallID(int id);

    enum Role getRole()const
    {
        return m_role;
    }

    void setRole(enum Role role);

    int getAccountID()const
    {
        return m_accountID;
    }

    void setAccountID(int id);

    std::string getLocalUri()const
    {
        return m_localUri;
    }

    void setLocalUri(const std::string uri);

    std::string getLocalContact() const
    {
        return m_localContact;
    }

    void setLocalContact(const std::string contact);

    std::string getRemoteUri()const
    {
        return m_remoteUri;
    }

    void setRemoteUri(const std::string uri);

    std::string getRemoteContact()const
    {
        return m_remoteContact;
    }

    void setRemoteContact(const std::string contact);

    std::string getCallIDString()const
    {
        return m_callIDString;
    }

    void setCallIDString(const std::string id_string);

    enum PjApiInviteState::InviteState getCallState() const
    {
        return m_state;
    }

    void setInviteState(enum PjApiInviteState::InviteState state);

    std::string getCallStateText()const
    {
        return m_stateText;
    }

    void setCallStateText(const std::string text);

protected:

    int m_callID;

    enum Role m_role;

    int m_accountID;

    std::string m_localUri;

    std::string m_localContact;

    std::string m_remoteUri;

    std::string m_remoteContact;

    //Dialog Call-ID string.
    std::string m_callIDString;

    enum PjApiInviteState::InviteState m_state;

    std::string m_stateText;

    //To add


};

#endif //PJAPICALLINFO_H